home *** CD-ROM | disk | FTP | other *** search
/ Dr. Windows 3 / dr win3.zip / dr win3 / WINPROGS / SAMDU240.ZIP / DISKDRIV.H < prev    next >
Text File  |  1993-10-01  |  7KB  |  132 lines

  1. /*********************************************************************/
  2. /*                                                                   */
  3. /*    Name:    DISKDRIV.H                                            */
  4. /*                                                                   */
  5. /*    Copyright (c) Stewart A. Berman 1992, All rights reserved      */
  6. /*                                                                   */
  7. /*********************************************************************/
  8. #ifndef __DISKDRIV_H__
  9. #define __DISKDRIV_H__
  10.  
  11. #include <IO.h>
  12.  
  13. #define AUTOMATIC  1
  14. #define ALWAYS     2
  15. #define NEVER      3
  16. #define FAST       4
  17.  
  18. #define FORMATFAST           0x0010
  19. #define FORMATQUICK          0x0020
  20.  
  21. #ifdef __cplusplus
  22. extern "C" {
  23. #else
  24. #define _CINTERFACE
  25. #endif /* _cplusplus */
  26.  
  27. #ifndef _CPPINTERFACE
  28.  
  29. VOID far * FAR PASCAL DiskDriveCreateDrive  ( char cDrive, UINT nType, UINT nCylinders, lpfnHANDLESTATUS lpfnNewHandleStatus ) ;
  30. VOID far * FAR PASCAL DiskDriveCreateFile   ( LPCSTR lpczFileName, LPCSTR lpczApplicationTitle, LPCSTR lpczVersion, UINT nType, UINT nCylinders, lpfnHANDLESTATUS lpfnNewHandleStatus ) ;
  31. VOID far * FAR PASCAL DiskDriveCreateMemory ( UINT nMemory, UINT nType, UINT nCylinders, lpfnHANDLESTATUS lpfnNewHandleStatus ) ;
  32. VOID far * FAR PASCAL DiskDriveCreateVDrive ( VOID far *pCVDriveNew, UINT nType, UINT nCylinders, lpfnHANDLESTATUS lpfnNewHandleStatus ) ;
  33. VOID       FAR PASCAL DiskDriveDelete ( VOID far *pCDiskDrive ) ;
  34.  
  35. VOID       FAR PASCAL DiskDriveCopy ( VOID far *pCDiskDrive, VOID far *pCDiskDriveSource ) ;
  36. BOOL       FAR PASCAL DiskDriveCompare ( VOID far *pCDiskDrive, VOID far *pCDiskDriveSource ) ;
  37.  
  38. UINT       FAR PASCAL DiskDriveForceReset     ( VOID far *pCDiskDrive ) ;
  39. BOOL       FAR PASCAL DiskDriveHasData        ( VOID far *pCDiskDrive ) ;
  40. BOOL       FAR PASCAL DiskDriveIsTruncated    ( VOID far *pCDiskDrive ) ;
  41. char       FAR PASCAL DiskDriveLetter         ( VOID far *pCDiskDrive ) ;
  42. UINT       FAR PASCAL DiskDriveReset          ( VOID far *pCDiskDrive ) ;
  43. UINT       FAR PASCAL DiskDriveSetRead        ( VOID far *pCDiskDrive, UINT nTempType, UINT nCylinders ) ;
  44. VOID       FAR PASCAL DiskDriveSetType        ( VOID far *pCDiskDrive, UINT nNewType ) ;
  45. UINT       FAR PASCAL DiskDriveSetWrite       ( VOID far *pCDiskDrive, UINT nTempType, UINT nCylinders ) ;
  46. UINT       FAR PASCAL DiskDriveType           ( VOID far *pCDiskDrive ) ;
  47. UINT       FAR PASCAL DiskDriveUsedCylinders  ( VOID far *pCDiskDrive ) ;
  48. UINT       FAR PASCAL DiskDriveUsedHeads      ( VOID far *pCDiskDrive ) ;
  49. UINT       FAR PASCAL DiskDriveUsedSectors    ( VOID far *pCDiskDrive ) ;
  50. UINT       FAR PASCAL DiskDriveUsedSectorSize ( VOID far *pCDiskDrive ) ;
  51.  
  52. UINT       FAR PASCAL DiskDriveFormat       ( VOID far *pCDiskDrive, LPCSTR lpczVolumeLabel, UINT nFormatOption, LPBYTE lpbyBootSector, lpfnHANDLESTATUS lpfnHandleStatus ) ;
  53. UINT       FAR PASCAL DiskDriveFormatTrack  ( VOID far *pCDiskDrive, UINT nCylinders, UINT nHead, lpfnHANDLESTATUS lpfnNewHandleStatus ) ;
  54. UINT       FAR PASCAL DiskDriveReadSectors  ( VOID far *pCDiskDrive, UINT nCylinders, UINT nHead, UINT nSector, UINT nCount, LPBYTE lpcBuffer, lpfnHANDLESTATUS lpfnNewHandleStatus ) ;
  55. UINT       FAR PASCAL DiskDriveWriteSectors ( VOID far *pCDiskDrive, UINT nCylinders, UINT nHead, UINT nSector, UINT nCount, LPBYTE lpcBuffer, lpfnHANDLESTATUS lpfnNewHandleStatus ) ;
  56.  
  57. LPCSTR     FAR PASCAL DiskDriveGetVolumeDate  ( VOID far *pCDiskDrive, LPSTR  lpczOldVolumeDate  ) ;
  58. LPCSTR     FAR PASCAL DiskDriveGetVolumeLabel ( VOID far *pCDiskDrive, LPSTR  lpczOldVolumeLabel ) ;
  59. BOOL       FAR PASCAL DiskDriveSetVolumeLabel ( VOID far *pCDiskDrive, LPCSTR lpczNewVolumeLabel ) ;
  60.  
  61. VOID       FAR PASCAL DiskDriveSetWriteFormatOption ( VOID far *pCDiskDrive, UINT nWriteFormatOptionNew ) ;
  62. VOID       FAR PASCAL DiskDriveSetWriteVerifyOption ( VOID far *pCDiskDrive, BOOL bWriteVerifyOptionNew ) ;
  63.  
  64. VOID       FAR PASCAL DiskDriveTruncate        ( VOID far *pCDiskDrive ) ;
  65. VOID       FAR PASCAL DiskDriveTruncateReverse ( VOID far *pCDiskDrive ) ;
  66.  
  67. BOOL       FAR PASCAL DiskDriveWriteBootSector ( VOID far *pCDiskDrive, LPBYTE lpbyModelBootSector, lpfnHANDLESTATUS lpfnNewHandleStatus ) ;
  68.  
  69. #endif /* _CINTERFACE */
  70.  
  71. #ifdef __cplusplus
  72.            }
  73. #endif /* __cplusplus */
  74.  
  75. #ifdef __cplusplus
  76.  
  77. #ifndef _CINTERFACE
  78.  
  79. class CDiskDrive : public CDiskLogical
  80. {                    
  81.  
  82. DECLARE_DYNAMIC ( CDiskDrive ) ;
  83.  
  84. public:
  85.              CPPEXPORT  CDiskDrive ( char cDrive, UINT nType=FD0000, UINT nCylinders=0, lpfnHANDLESTATUS lpfnNewHandleStatus=NULL ) ;
  86.              CPPEXPORT  CDiskDrive ( LPCSTR lpczFileName, LPCSTR lpczApplicationTitle, LPCSTR lpczVersion, UINT nType=FD0000, UINT nCylinders=0, lpfnHANDLESTATUS lpfnNewHandleStatus=NULL ) ;
  87.              CPPEXPORT  CDiskDrive ( UINT nMemory, UINT nType=FD0000, UINT nCylinders=0, lpfnHANDLESTATUS lpfnNewHandleStatus=NULL ) ;
  88.              CPPEXPORT  CDiskDrive ( class CVDrive CLASSPTR *pCVDriveNew, UINT nType=FD0000, UINT nCylinders=0, lpfnHANDLESTATUS lpfnNewHandleStatus=NULL ) ;
  89.              CPPEXPORT ~CDiskDrive () ;
  90.  
  91. CDiskDrive & CPPEXPORT operator=( class CDiskDrive CLASSPTR &other ) ;
  92.         BOOL CPPEXPORT operator==( class CDiskDrive CLASSPTR &other ) ;
  93.  
  94.         UINT CPPEXPORT ForceReset () ;
  95.         char CPPEXPORT Letter() ;
  96.         UINT CPPEXPORT Reset () ;
  97.         UINT CPPEXPORT SetRead ( UINT nTempType, UINT nCylinders=0 ) ;
  98.         UINT CPPEXPORT SetWrite ( UINT nTempType, UINT nCylinders=0 ) ;
  99.         VOID CPPEXPORT SetWriteFormatOption ( UINT nWriteFormatOptionNew ) ;
  100.         VOID CPPEXPORT SetWriteVerifyOption ( BOOL nWriteVerifyOptionNew ) ;
  101.  
  102.         UINT CPPEXPORT FormatTrack  ( UINT nCylinder, UINT nHead, lpfnHANDLESTATUS lpfnNewHandleStatus=NULL ) ;
  103.         UINT CPPEXPORT ReadSectors  ( UINT nCylinder, UINT nHead, UINT nSector, UINT nCount, LPBYTE lpcBuffer, lpfnHANDLESTATUS lpfnNewHandleStatus=NULL ) ;
  104.         UINT CPPEXPORT WriteSectors ( UINT nCylinder, UINT nHead, UINT nSector, UINT nCount, LPBYTE lpcBuffer, lpfnHANDLESTATUS lpfnNewHandleStatus=NULL ) ;
  105.  
  106. #ifdef DEBUG
  107.     virtual void Dump ( CDumpContext& dc ) const ;
  108. #endif
  109.  
  110. protected:
  111.  
  112.     CVDrive CLASSPTR *pCVDrive ;
  113.  
  114. private:
  115.  
  116.         BOOL bLocalVDrive ;
  117.         BOOL bWriteVerifyOption ;
  118.  
  119.         UINT nWriteFormatOption ;
  120.  
  121.         VOID           CommonConstructor ( class CVDrive CLASSPTR *pCVDriveNew, UINT nType=FD0000, UINT nCylinders=0, lpfnHANDLESTATUS lpfnNewHandleStatus=NULL ) ;
  122.  
  123. } ;
  124.  
  125. #endif /* _CINTERFACE */
  126.  
  127. #endif /* __cplusplus */
  128.  
  129. #endif /* __DISKDRIV_H__ */
  130.  
  131.  
  132.